Distributed Programming via Safe Closure Passing
نویسندگان
چکیده
Programming systems incorporating aspects of functional programming, e.g., higher-order functions, are becoming increasingly popular for large-scale distributed programming. New frameworks such as Apache Spark leverage functional techniques to provide high-level, declarative APIs for in-memory data analytics, often outperforming traditional “big data” frameworks like Hadoop MapReduce. However, widely-used programming models remain rather ad-hoc; aspects such as implementation trade-offs, static typing, and semantics are not yet well-understood. We present a new asynchronous programming model that has at its core several principles facilitating functional processing of distributed data. The emphasis of our model is on simplicity, performance, and expressiveness. The primary means of communication is by passing functions (closures) to distributed, immutable data. To ensure safe and efficient distribution of closures, our model leverages both syntactic and typebased restrictions. We report on a prototype implementation in Scala. Finally, we present preliminary experimental results evaluating the performance impact of a static, type-based optimization of serialization.
منابع مشابه
A Type-Based Foundation for Closure-Passing in the Age of Concurrency and Distribution
Functional programming (FP) is regularly touted as the way forward for bringing parallel, concurrent, and distributed programming to the mainstream. However, despite this established viewpoint, reliably distributing function closures over a network, or using them in concurrent environments nonetheless remains a challenge across FP and OO languages. Our work on Spores takes a step towards more p...
متن کاملA Linear Decomposition of Multiparty Sessions for Safe Distributed Programming
Multiparty Session Types (MPST) is a typing discipline for message-passing distributed processes that can ensure properties such as absence of communication errors and deadlocks, and protocol conformance. Can MPST provide a theoretical foundation for concurrent and distributed programming in “mainstream” languages? We address this problem by (1) developing the first encoding of a full-fledged m...
متن کاملSpores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution
Functional programming (FP) is regularly touted as the way forward for bringing parallel, concurrent, and distributed programming to the mainstream. The popularity of the rationale behind this viewpoint has even led to a number of object-oriented (OO) programming languages outside the Smalltalk tradition adopting functional features such as lambdas and thereby function closures. However, despit...
متن کاملCompiling High Performance Fortran to Message Passing
ADAPTOR is a public domain High Performance Fortran compilation system that provides the comfortable data parallel programming paradigm on parallel machines with distributed memory. Therefore, the data parallel programs with their global view of data are translated to programs that work on the local parts of the distributed data and exchange the other needed data via message passing. This paper...
متن کاملParallel Distributed Programming with Haskell + PVM
This paper presents a methodology to transform a pure functional speciication into a distributed message-passing program via equa-tional reasoning. The methodology uses a formal model of a message passing system. This abstract system can be implemented using PVM or MPI, and thus executable programs produced.
متن کامل